/*
    for licensing see LICENSE.txt
    for documentation see DOCUMENTATION.txt

*/

/* main includes from standard library */
#include <stdio.h> 
#include <string.h>
#include <stdlib.h>
#include <stdint.h>

typedef struct vanilla_cards{
    /* card number can range from 1 to 13 */
    unsigned int8_t cardnumber = NULL;
    char *cardrace = ["Humans", "Dwarfs", "Elves", "Giants"];
    char *cardclass = ["Fool", "Wizard", "Normal"]; 
    char *cardcolor = [""];
}vanilla_cards;

typedef struct gamerules{
    /* how many cards are included in the whole game */
    unsigned int8_t cardcount = 60;
    
}gamerules;

/* 
    "engine" is a shitty, non-descriptive name, but i lack creativity. 
    the function is for the basic game logic or something
*/ 
void printinstructions(void){
    puts("+-------------------------------------------------------------------------------------+");
    puts("| Wizard Game Instructions:								|");
    puts("| Wizard is all about guessing if you can win with the cards you were dealt with, and |"); 
    puts("| to what degree (i.e. with how many cards you win and with how many you lose. One    |"); 
    puts("| special card is on the table, which determines the trump card. Said trump card is   |");
    puts("| defined by its colour. The card with the highest number wins. Exceptions to this	|")
    puts("| is the wizard, he always wins, the fool, he always loses, and the a card with the   |");
    puts("| trump colour. If multiple cards with the trump colour are placed, he highest number |");
    puts("| wins.										|"); 
    puts("| The number of cards per round increases, therefor the number of possible win 	|"); 
    puts("| situations increases. The player should look at his dealt cards and guess how many 	|");
    puts("| times he wins against the other players.						|");
    puts("| IF YOU READ THIS LINE THE GUIDE IS NOT FINISHED					|");
    puts("+-------------------------------------------------------------------------------------+");
    
}
int engine(){
    
}

int main(void){
    return 0;
}